// 小明有n块木板，第i（1＜=i＜=n）块木板的长度为ai。\n小明买了一块长度为m的木料，这块木料可以切割成任意块，拼接到已有的木板上，用来加长木板。\n小明想让最短的木板尽量长。\n请问小明加长木板后，最短木板的长度最大可以为多少？
// 输入描述：\n输入的第一行包含两个正整数，n(11n1103)，m(11m1106)——n表示木板数，m表示木料长度。\n输入的第二行包含n个正整数，a1，a2，，，，，an (1＜=ai＜=106)。\n\n输出描述：\n输出的唯一一行包含一个正整数，表示加长木板后，最短木板的长度最大可以为多少？
// let input1 = readline().split(" ").map(Number);
// let arr = readline().split(" ").map(Number);
let input1 = "5 2".split(" ").map(Number);
let arr = "4 5 3 5 5".split(" ").map(Number);
//物料长度
let len = input1[1];
arr.sort();
//动态计算
while(len > 0) {
    for(let i = 0; i< arr.length; i++) {
        if(arr[i+1] > arr[i] || i+1 === arr.legnth) {
            arr[i]++;
            len--;
            break;
        } 
    }
}
// for (let i = 0; i < len; i++) {
//     for (let j = 0; j < arr.length; j++) {
//         if (j + 1 < arr.length && arr[j] + 1 > arr[j + 1]) {
//             continue;
//         }
//         arr[j]++;
//         break;
//     }
// }
 
console.log(arr[0]);